package com.ruoyi.iot.mapper;

import com.ruoyi.iot.domain.entity.DeviceFaultRecord;
import java.time.LocalDateTime;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 设备故障记录 Mapper。
 */
@Mapper
public interface DeviceFaultRecordMapper {

    /**
     * 查询指定设备最新一条记录的事件时间。
     *
     * @param deviceId 设备编号
     * @return 最新事件时间，未查询到则返回 null
     */
    LocalDateTime selectLatestEventTime(@Param("deviceId") String deviceId);

    /**
     * 批量插入故障记录。
     *
     * @param list 记录集合
     * @return 影响行数
     */
    int insertBatch(@Param("list") List<DeviceFaultRecord> list);

    /**
     * 按时间范围查询指定设备的故障记录。
     *
     * @param deviceId 设备编号
     * @param start    区间开始时间（含）
     * @param end      区间结束时间（含）
     * @return 匹配的故障记录列表
     */
    List<DeviceFaultRecord> selectByRange(@Param("deviceId") String deviceId,
                                          @Param("start") LocalDateTime start,
                                          @Param("end") LocalDateTime end);
}
